In areas of computer and network technologies, the terms “cloud” and “cloud computing” are often used as metaphors for certain network technologies such as the Internet, which is an abstraction of an underlying network infrastructure of computers, routers, servers, etc., that supports connectivity amongst many different types of computer resources.
So-called “cloud computing” is a natural evolution of the widespread adoption of virtualization, service-oriented architecture, autonomic, and utility computing. In certain cases, cloud computing abstracts the user from having to be an expert in or having to control certain application features; such features are managed by services in the cloud and the cloud storage is often provided by a third party entity known as a cloud storage service provider. Accordingly, cloud computing can provide a way to increase capacity or add capabilities to a computer system for user within an entity such as corporation (that is a separate entity that the cloud storage service provider), without the need to invest in new infrastructure, train new personnel, license new software, etc. Conventional cloud computing technologies provide users with example services such as remote document management and storage, email and contact management and the like, regardless of which device a user uses to connect to the cloud. In this manner, a user can access a document in the cloud on one computing device such as a desktop computer at his or her office, and then later access the same document from another computing device, such as his or her home computer. Applications that access cloud storage an do so using a set of standardized and well published application programming interfaces (APIs) and preset cloud storage data formats.
The cloud is thus instrumental in providing useful services to respective users and a respective device operated by a user may rely heavily or completely on services provided by the cloud. This provides the ability to execute an instance of a computer application on any of multiple different computers without the hassles of having to store the data associated with the application in a restrictive location such as a single computer device.